/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.proyectoTiberio.login;

import com.proyectoTiberio.entity.CityEntity;
import com.proyectoTiberio.entity.PlayerInfoEntity;
import com.proyectoTiberio.entity.ServerInfoEntity;
import com.proyectoTiberio.portal.CityFormBean;
import com.proyectoTiberio.portal.PortalForm;
import java.util.ArrayList;

/**
 *
 * @author chema
 */
public class LoginMapper {
    

    static PortalForm toPortalForm(ServerInfoEntity serverInfo, PlayerInfoEntity playerInfo) {
        
        if(serverInfo == null || playerInfo == null)
            throw new IllegalArgumentException("Recibimos un argumento nulo: " +serverInfo + " - " +playerInfo);
        
        PortalForm portalForm = new PortalForm();
        
        portalForm.setIdUsurio(playerInfo.getId());
        portalForm.setNombre(playerInfo.getNombre());
        portalForm.setIdHermandad(playerInfo.getAllianceId());
        portalForm.setNombreHermandad(playerInfo.getAllianceName());
        portalForm.setNombreMundo(serverInfo.getNombre());
        portalForm.setCiudades(toCiudadesFormBean(playerInfo));
        
        return portalForm;
        
    }

    private static ArrayList<CityFormBean> toCiudadesFormBean(PlayerInfoEntity playerInfo) 
    {
        if(playerInfo == null)
            throw new IllegalArgumentException("Recibimos un argumento nulo: " );
        
        ArrayList<CityFormBean> ciudades = new ArrayList<CityFormBean>();
        CityFormBean ciudad = new CityFormBean();
                
        for(CityEntity ciudadEntity : playerInfo.getCiudades())
            ciudades.add(toCiudadFormBean(ciudadEntity));
        
        
        return ciudades;
        
    }

    private static CityFormBean toCiudadFormBean(CityEntity ciudadEntity) {
        
        CityFormBean ciudadFormBean = new CityFormBean();
        
        ciudadFormBean.setId(ciudadEntity.getId());
        ciudadFormBean.setNombre(ciudadEntity.getNombre());
        ciudadFormBean.setPosX(ciudadEntity.getPosX());
        ciudadFormBean.setPosY(ciudadEntity.getPosY());
        return ciudadFormBean;
    }
    
}
